iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
AI & Data

初學者介紹TensFlow.js系列系列 第 8

[Day8]使用張量進行運算

  • 分享至 

  • xImage
  •  

今天我們要來試著用張量來寫簡單計算使用者偏好的程式,也就是所謂的推薦引擎,當然這只是簡單的範例程式而已。

首先我們要先來介紹一下點積。
點積是用來表達為向量的張量間相似性質的方法,越相似則點積越高。

接下來這個城市會有幾個條件,

  1. 用1到10分位樂團評分
  2. 不認識的樂團直接0分
  3. 樂團和音樂類型將會是特徵(feature)
  4. 使用矩陣點積來確認每個使用者會喜歡哪個風格的音樂

首先我們先設定樂團名票數風格等資料:
https://ithelp.ithome.com.tw/upload/images/20220920/20152506GCUU6ok1Sa.png
https://ithelp.ithome.com.tw/upload/images/20220920/20152506RzHupFil8G.png
接著,由於所需資料皆變成張量了,於是我們可以透過賭取變數快速知道投票結果,然後用1和0來表達所有資料。例如[1,1,0,0,0,0]表示第0個樂團(Nirvan)的風格有第一項和第二項。

然後進行計算每個人喜歡的風格流派
https://ithelp.ithome.com.tw/upload/images/20220920/20152506l2FnJcbdsV.png
執行後的結果
https://ithelp.ithome.com.tw/upload/images/20220920/201525064a9DeGkLG1.png
這張量表現出每個的特徵,第0個也就是Gant在第0個檢索有最高值27,也就是說他喜歡的風格流派是Grunge。
或者我們可以呼叫函數topk來確認最高值為多少

最後我們將這些資料帶回javascript列印結果
注意!雖然上方的有列印出統計後解果的張量,不過我是將它回傳到javascript上寫的。
https://ithelp.ithome.com.tw/upload/images/20220920/20152506mgAz3ZWl6W.png
其實如果回到javascript上的話tensorflow -node.js會更快,不過我這裡引用的不是他

最後的結果全部印出是長這樣

https://ithelp.ithome.com.tw/upload/images/20220920/20152506F42Mo004cT.png
我們可以看到Todd的偏好是Industrial音樂,而Jed喜歡它的boy band。
我們在整個程式終將資料成功的載入張量中並透過是學籍和快速地進行運算而不是以每個人進行的方式,是不是很方便呢?

今天我就先講到這,明天來談談影像的張量是如何表示。


上一篇
[Day7]張量操作2
下一篇
[Day9]初談影像張量
系列文
初學者介紹TensFlow.js系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言